package com.zhen.aikan.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhen.aikan.entity.VodDetail;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author lijiazhen
 * @since 2023-09-11
 */
public interface IVodDetailService extends IService<VodDetail> {

    /**
     * 获取热门推荐
     * @return
     */
    Page<Map<String, Object>> getHotAnimationWithPage(String typeName, Integer current, Integer size);

    /**
     * 根据id获取影片
     *
     * @param vodId
     * @return
     */
    VodDetail getVodDetailById(long vodId);

    Page<Map<String, Object>> getVodByCondition(Integer pTypeId,Integer sTypeId, String area, String other, Integer current, Integer size);

    /**
     * 获取关于影片类型的当前月的影片排行榜
     *
     * @param typeName
     * @param current
     * @param size
     * @return
     */
    Page<Map<String, Object>> getVodLeaderboardByTypeName(String typeName, Integer current, Integer size);

    /**
     * 模糊搜索出的匹配项
     *
     * @param searchText 长度要大于1
     * @return
     */
    List<Map<String,Object>> getVodNameMatchingItems(String searchText);

    Page<Map<String, Object>> fuzzySearchVodForSearchText(String searchText, String typeName, Integer current, Integer size);

    /**
     * 获取猜你喜欢的视频信息(相似类，相同地域，相似标签，较热门，取前15个)
     * @param vodClass
     * @param area
     * @param tag
     * @return
     */
    List<VodDetail> getGuessYouLike(String vodClass, String area, String tag);

    List<VodDetail> getHotVodByMaonthTypeArea(String typeName, String area, Integer size);

    List<VodDetail> getVodsByWeekType(String week, String typeName,String area);

    List<VodDetail> getHotVodMonthTypeAreaWithHitsMonth(String typeName, String area, Integer size);
}
